'use strict'

const Controller = require('egg').Controller

// i/o
// 内存存储 - 关系型数据库 table 硬件存储
// 内存数据库 - redis  key value {key:value} 内存存储
// { key : value } new Map

// Map 称为js中的完美的hash结构

const bufferMap = new Map()
class BufferController extends Controller {
  async bufferCache() {
    if (bufferMap.size) {
      const userInfo = bufferMap.get(this.ctx.request.url)
      this.ctx.body = { userInfo }
    } else {
      const userInfo = await this.app.mysql.get('users', { id: 1 })
      bufferMap.set(this.ctx.request.url, userInfo)
      this.ctx.body = { url: this.ctx.request.url, userInfo }
    }
  }

  // async bufferCache() {
  //   const { ctx, app } = this
  //   const { code } = ctx.query
  //   if (str) {
  //     ctx.body = { data: buf1.toString() }
  //   } else {
  //     buf1 = new Buffer.alloc(256)
  //     const userInfo = await app.mysql.get('users', { id: 1 })
  //     str = buf1.write(JSON.stringify(userInfo))
  //     ctx.body = {
  //       data: JSON.parse(JSON.stringify(buf1.toString())),
  //       str,
  //     }
  //   }
  // }
}

module.exports = BufferController
